package com.exercise.DesignPattern.CreationalPatterns.AbstractFactoryPattern;

/**
 * 抽象工厂模式
 * 核心思想：提供一个创建一系列相关或相互依赖对象的接口，而无需指定它们具体的类。
 * 实现方式：通过定义多个工厂接口，每个接口负责创建一组相关的对象。
 * 应用场景：跨平台 UI 组件库（如 Windows/MacOS 风格的按钮和文本框）。
 * 与工厂方法的区别：工厂方法关注单一产品，抽象工厂处理产品族。
 *
 * 优点：
 * 一致性：确保创建的一系列对象具有一致性。
 * 扩展性：易于扩展产品系列，而不影响现有代码。
 */
//客户端
public class Client {
    public static void main(String[] args) {
        ConcreteFactory1 concreteFactory1 = new ConcreteFactory1();
        ProductA productA = concreteFactory1.createProductA();
        ProductB productB = concreteFactory1.createProductB();
        System.out.println(productB + "||" + productA);
    }
}
